/**
 * <p>Copyright: Copyright (c) 2012</p>
 * <p>Company: 联动优势科技有限公司</p>
 * <p>May 3, 20132:05:07 PM</p>
 * @author Ding Zhe
 * @version 1.0
 */
package com.umpay.privi.service.sys;

import com.umpay.privi.common.ReqMessage;
import com.umpay.privi.common.ResMessage;

/** 
 * desc:角色接口
 * <p>创建人：Ding Zhe 创建日期：May 3, 2013 </p>
 * @version V1.0  
 */
public interface RoleServiceRemote{
	/**
	 * desc:根据输入条件查询复核条件的所有角色
	 * <p>创建人：Ding Zhe , May 3, 2013 2:08:08 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage queryRoles(ReqMessage reqMessage);
	/**
	 * desc:根据输入条件，分页查询复核条件的所有角色
	 * <p>创建人：Ding Zhe , May 3, 2013 2:08:11 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage queryRolesWithPage(ReqMessage reqMessage);
	/**
	 * desc:根据角色名称和系统编号查询对应的角色
	 * <p>创建人：Ding Zhe , May 3, 2013 2:08:34 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage queryRolesByName(ReqMessage reqMessage);
	/**
	 * desc:根据角色编号查询对应的角色
	 * <p>创建人：Ding Zhe , May 3, 2013 2:08:36 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage getRoleById(ReqMessage reqMessage);
	/**
	 * desc:获取角色以及对应的权限信息
	 * <p>创建人：Ding Zhe , May 3, 2013 2:08:39 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage previewRolePrivilege(ReqMessage reqMessage);
	/**
	 * desc:增加角色和该角色对应的权限
	 * <p>创建人：Ding Zhe , May 3, 2013 2:08:45 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage addRoleAndPrivileges(ReqMessage reqMessage);
	/**
	 * desc:修改角色名称和该角色对应的权限
	 * <p>创建人：Ding Zhe , May 3, 2013 2:08:48 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage modifyRoleAndPrivileges(ReqMessage reqMessage);
	/**
	 * desc:删除当前的角色。当角色及其创建的角色有被占用时，角色不能删除
	 * <p>创建人：Ding Zhe , May 3, 2013 2:08:50 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage deleteRole(ReqMessage reqMessage);
	/**
	 * desc:修改角色信息
	 * <p>创建人：Ding Zhe , May 3, 2013 2:08:53 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage modifyRole(ReqMessage reqMessage);
	/**
	 * desc:关闭当前的角色。当角色及其创建的角色有被占用时，角色不能关闭
	 * <p>创建人：Ding Zhe , May 3, 2013 2:17:50 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage closeRole(ReqMessage reqMessage);
	/**
	 * desc:通用权限管理系统，对外提供根据用户id查询该用户创建的角色的接口。
	 * 该接口主要用于新增和修改操作员界面，用来展示登录用户创建的角色。
	 * 通用权限管理系统不对使用该接口的用户或系统做权限校验，由各外部接入系统自行控制。
	 * <p>创建人：Ding Zhe , May 17, 2013 3:09:34 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage queryCreatedRoles(ReqMessage reqMessage);
	/**
	 * <pre>
	 * 通用权限管理系统，对外提供根据用户id查询用户可分配角色的接口。
	 * 该接口主要用于新增和修改操作员界面，用来展示登录用户可授权的业务角色。
	 * 所有输出除非特别标明，默认是String类型
	 * 输入 ReqMessage(sysId[Y]、operUserId[Y])
	 * 输出 ResMessage(retCode[Y]、retMsg[Y]、resultList[Y])
	 * </pre>
	 * @author lijing 2013-5-8
	 */
	ResMessage queryAuthRolesByUserId(ReqMessage reqMessage);
	
	/**
	 * desc:查询用户所对应的角色
	 * <p>创建人：liucong , Aug 8, 2014 1:39:50 PM</p>
	 * @param reqMessage
	 * @return
	 */
	ResMessage queryRolesIdByUserId(ReqMessage reqMessage);
}
